import { IBlackItem, IMuteItem } from "./Device";

export interface IUser {
  _id?: string;
  /**
   * 云通信ID，最大长度32字符，必须保证一个
   * APP内唯一（只允许字母、数字、半角下划线_、@、半角点以及半角-组成，不区分大小写，会统一小写处理，请注意以此接口返回结果中的accid为准）。
   */
  account?: string;
  /** 云通信ID可以指定登录token值，最大长度128字符，并更新，如果未指定，会自动生成token，并在创建成功后返回 */
  token?: string;
  pushid?: string;

  // 托管简单的用户信息
  nick?: string;
  avatar?: string;
  /** 签名 */
  sign?: string;
  /** 用户性别，0表示未知，1表示男，2女表示女，其它会报参数错误 */
  gender?: 0 | 1 | 2;
  /** 用户email，最大长度64字符 */
  email?: string;
  /** 用户生日，最大长度16字符 */
  birth?: string;
  /** 用户mobile，最大长度32字符，非中国大陆手机号码需要填写国家代码(如美国：+1-xxxxxxxxxx)或地区代码(如香港：+852-xxxxxxxx) */
  mobile?: string;

  blacklist?: IBlackItem[];
  mutelist?: IMuteItem[];

  /** 扩展字段 */
  custom?: object;
  createTime?: number;
  updateTime?: number;
}

/**
 * User Mongoose Model
 */
export const SchemaUser = {
  account: String,
  nick: String,
  avatar: String,
  /** 签名 */
  sign: String,
  /** 性别 */
  gender: Number,
  email: String,
  birth: String,
  tel: String,
  token: String,
  pushid: String,
  /* 存储黑名单 */
  blacklist: Array,
  /* 存储静音 */
  mutelist: Array,
  /** 扩展字段 */
  custom: String,
  createTime: Number,
  updateTime: Number,
};
